package com.b511.swpu.cementbackend.entity;

import javax.persistence.*;
import java.sql.Time;
import java.util.Objects;

@Entity
@Table(name = "BA_WELL", schema = "WANGBING", catalog = "")
public class BaWellEntity {
    private long baWellId;
    private String wellname;
    private String country;
    private String area;
    private String block;
    private String oilfield;
    private String geographicalposition;
    private String structurallocation;
    private String wellheadx;
    private String wellheady;
    private String wellheadlongitude;
    private String wellheadlatitude;
    private Long waterdepth;
    private Long mudline;
    private Long bushingalti;
    private String welltype;
    private String wellspacing;
    private String wellcategory;
    private String islandwell;
    private String drillingplatform;
    private String drillingplatformtype;
    private Long riserod;
    private Long riserid;
    private Long riserdepth;
    private String boreholecompany;
    private String mudcompany;
    private String cementcompany;
    private String operator;
    private String operatordeputy;
    private Long designdepth;
    private Long designvertical;
    private String drillinggoal;
    private String sidedrillingpoint;
    private Time drillingstarttime;
    private Time drillingfinishtime;
    private Long drillingperiod;
    private Long constructionperiod;
    private Long drillingdepth;
    private Long drillingverticaldepth;
    private Long practicalwelldeep;
    private Long actualvertical;
    private String wkloledrillinghorizon;
    private String principle;
    private String completionmethod;
    private Long averagespeed;
    private Long coringfootage;
    private Long corerate;

    @Id
    @Column(name = "BA_WELL_ID")
    public long getBaWellId() {
        return baWellId;
    }

    public void setBaWellId(long baWellId) {
        this.baWellId = baWellId;
    }

    @Basic
    @Column(name = "WELLNAME")
    public String getWellname() {
        return wellname;
    }

    public void setWellname(String wellname) {
        this.wellname = wellname;
    }

    @Basic
    @Column(name = "COUNTRY")
    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    @Basic
    @Column(name = "AREA")
    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    @Basic
    @Column(name = "BLOCK")
    public String getBlock() {
        return block;
    }

    public void setBlock(String block) {
        this.block = block;
    }

    @Basic
    @Column(name = "OILFIELD")
    public String getOilfield() {
        return oilfield;
    }

    public void setOilfield(String oilfield) {
        this.oilfield = oilfield;
    }

    @Basic
    @Column(name = "GEOGRAPHICALPOSITION")
    public String getGeographicalposition() {
        return geographicalposition;
    }

    public void setGeographicalposition(String geographicalposition) {
        this.geographicalposition = geographicalposition;
    }

    @Basic
    @Column(name = "STRUCTURALLOCATION")
    public String getStructurallocation() {
        return structurallocation;
    }

    public void setStructurallocation(String structurallocation) {
        this.structurallocation = structurallocation;
    }

    @Basic
    @Column(name = "WELLHEADX")
    public String getWellheadx() {
        return wellheadx;
    }

    public void setWellheadx(String wellheadx) {
        this.wellheadx = wellheadx;
    }

    @Basic
    @Column(name = "WELLHEADY")
    public String getWellheady() {
        return wellheady;
    }

    public void setWellheady(String wellheady) {
        this.wellheady = wellheady;
    }

    @Basic
    @Column(name = "WELLHEADLONGITUDE")
    public String getWellheadlongitude() {
        return wellheadlongitude;
    }

    public void setWellheadlongitude(String wellheadlongitude) {
        this.wellheadlongitude = wellheadlongitude;
    }

    @Basic
    @Column(name = "WELLHEADLATITUDE")
    public String getWellheadlatitude() {
        return wellheadlatitude;
    }

    public void setWellheadlatitude(String wellheadlatitude) {
        this.wellheadlatitude = wellheadlatitude;
    }

    @Basic
    @Column(name = "WATERDEPTH")
    public Long getWaterdepth() {
        return waterdepth;
    }

    public void setWaterdepth(Long waterdepth) {
        this.waterdepth = waterdepth;
    }

    @Basic
    @Column(name = "MUDLINE")
    public Long getMudline() {
        return mudline;
    }

    public void setMudline(Long mudline) {
        this.mudline = mudline;
    }

    @Basic
    @Column(name = "BUSHINGALTI")
    public Long getBushingalti() {
        return bushingalti;
    }

    public void setBushingalti(Long bushingalti) {
        this.bushingalti = bushingalti;
    }

    @Basic
    @Column(name = "WELLTYPE")
    public String getWelltype() {
        return welltype;
    }

    public void setWelltype(String welltype) {
        this.welltype = welltype;
    }

    @Basic
    @Column(name = "WELLSPACING")
    public String getWellspacing() {
        return wellspacing;
    }

    public void setWellspacing(String wellspacing) {
        this.wellspacing = wellspacing;
    }

    @Basic
    @Column(name = "WELLCATEGORY")
    public String getWellcategory() {
        return wellcategory;
    }

    public void setWellcategory(String wellcategory) {
        this.wellcategory = wellcategory;
    }

    @Basic
    @Column(name = "ISLANDWELL")
    public String getIslandwell() {
        return islandwell;
    }

    public void setIslandwell(String islandwell) {
        this.islandwell = islandwell;
    }

    @Basic
    @Column(name = "DRILLINGPLATFORM")
    public String getDrillingplatform() {
        return drillingplatform;
    }

    public void setDrillingplatform(String drillingplatform) {
        this.drillingplatform = drillingplatform;
    }

    @Basic
    @Column(name = "DRILLINGPLATFORMTYPE")
    public String getDrillingplatformtype() {
        return drillingplatformtype;
    }

    public void setDrillingplatformtype(String drillingplatformtype) {
        this.drillingplatformtype = drillingplatformtype;
    }

    @Basic
    @Column(name = "RISEROD")
    public Long getRiserod() {
        return riserod;
    }

    public void setRiserod(Long riserod) {
        this.riserod = riserod;
    }

    @Basic
    @Column(name = "RISERID")
    public Long getRiserid() {
        return riserid;
    }

    public void setRiserid(Long riserid) {
        this.riserid = riserid;
    }

    @Basic
    @Column(name = "RISERDEPTH")
    public Long getRiserdepth() {
        return riserdepth;
    }

    public void setRiserdepth(Long riserdepth) {
        this.riserdepth = riserdepth;
    }

    @Basic
    @Column(name = "BOREHOLECOMPANY")
    public String getBoreholecompany() {
        return boreholecompany;
    }

    public void setBoreholecompany(String boreholecompany) {
        this.boreholecompany = boreholecompany;
    }

    @Basic
    @Column(name = "MUDCOMPANY")
    public String getMudcompany() {
        return mudcompany;
    }

    public void setMudcompany(String mudcompany) {
        this.mudcompany = mudcompany;
    }

    @Basic
    @Column(name = "CEMENTCOMPANY")
    public String getCementcompany() {
        return cementcompany;
    }

    public void setCementcompany(String cementcompany) {
        this.cementcompany = cementcompany;
    }

    @Basic
    @Column(name = "OPERATOR")
    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    @Basic
    @Column(name = "OPERATORDEPUTY")
    public String getOperatordeputy() {
        return operatordeputy;
    }

    public void setOperatordeputy(String operatordeputy) {
        this.operatordeputy = operatordeputy;
    }

    @Basic
    @Column(name = "DESIGNDEPTH")
    public Long getDesigndepth() {
        return designdepth;
    }

    public void setDesigndepth(Long designdepth) {
        this.designdepth = designdepth;
    }

    @Basic
    @Column(name = "DESIGNVERTICAL")
    public Long getDesignvertical() {
        return designvertical;
    }

    public void setDesignvertical(Long designvertical) {
        this.designvertical = designvertical;
    }

    @Basic
    @Column(name = "DRILLINGGOAL")
    public String getDrillinggoal() {
        return drillinggoal;
    }

    public void setDrillinggoal(String drillinggoal) {
        this.drillinggoal = drillinggoal;
    }

    @Basic
    @Column(name = "SIDEDRILLINGPOINT")
    public String getSidedrillingpoint() {
        return sidedrillingpoint;
    }

    public void setSidedrillingpoint(String sidedrillingpoint) {
        this.sidedrillingpoint = sidedrillingpoint;
    }

    @Basic
    @Column(name = "DRILLINGSTARTTIME")
    public Time getDrillingstarttime() {
        return drillingstarttime;
    }

    public void setDrillingstarttime(Time drillingstarttime) {
        this.drillingstarttime = drillingstarttime;
    }

    @Basic
    @Column(name = "DRILLINGFINISHTIME")
    public Time getDrillingfinishtime() {
        return drillingfinishtime;
    }

    public void setDrillingfinishtime(Time drillingfinishtime) {
        this.drillingfinishtime = drillingfinishtime;
    }

    @Basic
    @Column(name = "DRILLINGPERIOD")
    public Long getDrillingperiod() {
        return drillingperiod;
    }

    public void setDrillingperiod(Long drillingperiod) {
        this.drillingperiod = drillingperiod;
    }

    @Basic
    @Column(name = "CONSTRUCTIONPERIOD")
    public Long getConstructionperiod() {
        return constructionperiod;
    }

    public void setConstructionperiod(Long constructionperiod) {
        this.constructionperiod = constructionperiod;
    }

    @Basic
    @Column(name = "DRILLINGDEPTH")
    public Long getDrillingdepth() {
        return drillingdepth;
    }

    public void setDrillingdepth(Long drillingdepth) {
        this.drillingdepth = drillingdepth;
    }

    @Basic
    @Column(name = "DRILLINGVERTICALDEPTH")
    public Long getDrillingverticaldepth() {
        return drillingverticaldepth;
    }

    public void setDrillingverticaldepth(Long drillingverticaldepth) {
        this.drillingverticaldepth = drillingverticaldepth;
    }

    @Basic
    @Column(name = "PRACTICALWELLDEEP")
    public Long getPracticalwelldeep() {
        return practicalwelldeep;
    }

    public void setPracticalwelldeep(Long practicalwelldeep) {
        this.practicalwelldeep = practicalwelldeep;
    }

    @Basic
    @Column(name = "ACTUALVERTICAL")
    public Long getActualvertical() {
        return actualvertical;
    }

    public void setActualvertical(Long actualvertical) {
        this.actualvertical = actualvertical;
    }

    @Basic
    @Column(name = "WKLOLEDRILLINGHORIZON")
    public String getWkloledrillinghorizon() {
        return wkloledrillinghorizon;
    }

    public void setWkloledrillinghorizon(String wkloledrillinghorizon) {
        this.wkloledrillinghorizon = wkloledrillinghorizon;
    }

    @Basic
    @Column(name = "PRINCIPLE")
    public String getPrinciple() {
        return principle;
    }

    public void setPrinciple(String principle) {
        this.principle = principle;
    }

    @Basic
    @Column(name = "COMPLETIONMETHOD")
    public String getCompletionmethod() {
        return completionmethod;
    }

    public void setCompletionmethod(String completionmethod) {
        this.completionmethod = completionmethod;
    }

    @Basic
    @Column(name = "AVERAGESPEED")
    public Long getAveragespeed() {
        return averagespeed;
    }

    public void setAveragespeed(Long averagespeed) {
        this.averagespeed = averagespeed;
    }

    @Basic
    @Column(name = "CORINGFOOTAGE")
    public Long getCoringfootage() {
        return coringfootage;
    }

    public void setCoringfootage(Long coringfootage) {
        this.coringfootage = coringfootage;
    }

    @Basic
    @Column(name = "CORERATE")
    public Long getCorerate() {
        return corerate;
    }

    public void setCorerate(Long corerate) {
        this.corerate = corerate;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        BaWellEntity that = (BaWellEntity) o;
        return baWellId == that.baWellId &&
                Objects.equals(wellname, that.wellname) &&
                Objects.equals(country, that.country) &&
                Objects.equals(area, that.area) &&
                Objects.equals(block, that.block) &&
                Objects.equals(oilfield, that.oilfield) &&
                Objects.equals(geographicalposition, that.geographicalposition) &&
                Objects.equals(structurallocation, that.structurallocation) &&
                Objects.equals(wellheadx, that.wellheadx) &&
                Objects.equals(wellheady, that.wellheady) &&
                Objects.equals(wellheadlongitude, that.wellheadlongitude) &&
                Objects.equals(wellheadlatitude, that.wellheadlatitude) &&
                Objects.equals(waterdepth, that.waterdepth) &&
                Objects.equals(mudline, that.mudline) &&
                Objects.equals(bushingalti, that.bushingalti) &&
                Objects.equals(welltype, that.welltype) &&
                Objects.equals(wellspacing, that.wellspacing) &&
                Objects.equals(wellcategory, that.wellcategory) &&
                Objects.equals(islandwell, that.islandwell) &&
                Objects.equals(drillingplatform, that.drillingplatform) &&
                Objects.equals(drillingplatformtype, that.drillingplatformtype) &&
                Objects.equals(riserod, that.riserod) &&
                Objects.equals(riserid, that.riserid) &&
                Objects.equals(riserdepth, that.riserdepth) &&
                Objects.equals(boreholecompany, that.boreholecompany) &&
                Objects.equals(mudcompany, that.mudcompany) &&
                Objects.equals(cementcompany, that.cementcompany) &&
                Objects.equals(operator, that.operator) &&
                Objects.equals(operatordeputy, that.operatordeputy) &&
                Objects.equals(designdepth, that.designdepth) &&
                Objects.equals(designvertical, that.designvertical) &&
                Objects.equals(drillinggoal, that.drillinggoal) &&
                Objects.equals(sidedrillingpoint, that.sidedrillingpoint) &&
                Objects.equals(drillingstarttime, that.drillingstarttime) &&
                Objects.equals(drillingfinishtime, that.drillingfinishtime) &&
                Objects.equals(drillingperiod, that.drillingperiod) &&
                Objects.equals(constructionperiod, that.constructionperiod) &&
                Objects.equals(drillingdepth, that.drillingdepth) &&
                Objects.equals(drillingverticaldepth, that.drillingverticaldepth) &&
                Objects.equals(practicalwelldeep, that.practicalwelldeep) &&
                Objects.equals(actualvertical, that.actualvertical) &&
                Objects.equals(wkloledrillinghorizon, that.wkloledrillinghorizon) &&
                Objects.equals(principle, that.principle) &&
                Objects.equals(completionmethod, that.completionmethod) &&
                Objects.equals(averagespeed, that.averagespeed) &&
                Objects.equals(coringfootage, that.coringfootage) &&
                Objects.equals(corerate, that.corerate);
    }

    @Override
    public int hashCode() {
        return Objects.hash(baWellId, wellname, country, area, block, oilfield, geographicalposition, structurallocation, wellheadx, wellheady, wellheadlongitude, wellheadlatitude, waterdepth, mudline, bushingalti, welltype, wellspacing, wellcategory, islandwell, drillingplatform, drillingplatformtype, riserod, riserid, riserdepth, boreholecompany, mudcompany, cementcompany, operator, operatordeputy, designdepth, designvertical, drillinggoal, sidedrillingpoint, drillingstarttime, drillingfinishtime, drillingperiod, constructionperiod, drillingdepth, drillingverticaldepth, practicalwelldeep, actualvertical, wkloledrillinghorizon, principle, completionmethod, averagespeed, coringfootage, corerate);
    }
}
